Method and apparatus for painting groups of objects

ABSTRACT

Methods and apparatus, including computer program apparatus, implementing techniques for processing digital artwork. In one aspect, the techniques process aggregations of artwork where both the aggregation and at least some of the aggregated artwork have attached styles. The techniques handle various combinations of conditions resulting in applying style elements to the aggregation before or after applying style elements to underlying artwork. In another aspect, the techniques implement editable path objects having multiple attached fills and/or strokes. The techniques provide user interfaces for using the foregoing features.

This application is a continuation of Ser. No. 09/470,255 filed Dec. 22,1999 abandoned.

The present invention relates to computer graphics.

BACKGROUND

Computer programs can be used to produce graphical images that can berendered and displayed on an output device. Two such classes of programsare illustration applications and animation applications. Anillustration application can be used to generate original graphics orcombine original and existing graphics to produce a graphics image (anelectronic document or illustration) that can be displayed on a staticoutput device. An animation application can be used to produce acomposition that includes graphics that can be animated using one ormore effects to produce a result that can be played on a dynamic outputdevice.

Illustrations and compositions produced using conventional illustrationand animation applications include simple objects that are combined toform a final illustration or composition. A simple object can be a path,text, or other vector art object or an image art object and typicallyincludes several properties. Properties can include paint effects suchas strokes and fills for paths, vector effects such as zig-zag andscale, color blending effects such as transparency and darkening, andimage effects such as fade, blur, and watercolor.

Two basic properties of a simple vector object are its stroke and fillattributes. A stroke is a representation that follows the outline of apath. Strokes can have attributes such as color, width and dash pattern.For example, in the Adobe Illustrator® program, available from AdobeSystems Incorporated of San Jose, Calif., a stroke can be a solid color,a pattern or a brush and can include attributes such as weight, cap,join and dashed. A fill is an instruction for painting the interior of apath with a solid or variegated color, such as a repeating pattern, acolor gradation or a randomized arrangement. A fill might be a solidcolor, a gradient, a gradient mesh or a pattern. In conventionalillustration and animation programs, every simple object can have asingle stroke and a single fill.

When objects are combined—into a layer, for example—the renderedappearance of the objects can be affected by properties attached to thecombination. Otherwise, objects are typically rendered for display inaccordance with their individual properties.

SUMMARY

In one aspect, the invention provides a computer-implemented applicationfor applying a style to an aggregation. A style includes a set ofoperations to be applied to artwork including a set of pre-paintoperations followed by a set of paint operations as modified by thepre-paint operations. The method includes receiving an aggregation, theaggregation comprising one or more simple objects. The simple objectsinclude at least a first object having an object style. The object styleincludes a set of pre-paint operations followed by a set of paintoperations. An aggregation style is received and applied to theaggregation including applying at least one of the operations of theaggregation style to the first object before applying all operations ofthe object style to the first object.

In another aspect the invention provides a method for displaying styleinformation including displaying artwork comprising a hierarchy of oneor more aggregations, receiving a user input where the input identifyinga leaf object in the artwork. The leaf object is a simple objectcontaining no other objects, having one or more aggregation ancestors inthe hierarchy and having properties. Each of the aggregation ancestorshas an ancestor style. The method includes displaying a set ofproperties of the leaf object and the styles of the aggregationancestors of the leaf object.

In another aspect the invention provides a method for displayingproperty information about a selected simple artwork object and includesdisplaying a detailed representation of style properties of the simpleobject while displaying a succinct representation of styles of artworkaggregations that affect the appearance of the simple object.

In another aspect, the invention provides a method for editing anelectronic document that includes a simple artwork object and includesassociating with one artwork object two or more stroke attributes.

In another aspect, the invention provides a method for editing anelectronic document that includes a simple artwork object and includesassociating with one artwork object two or more fill attributes.

In another aspect, the invention provides a method for editing anelectronic document that includes an artwork object and includesassociating with one artwork object two or more stroke attributes andtwo or more fill attributes.

In another aspect, the invention provides a method for editing anelectronic document that includes an artwork object. The artwork objecthas a first attribute and one or more other attributes. The firstattribute is either a fill attribute or a stroke attribute. The otherattributes are either fill or stroke attributes. The method includesreceiving a user input selecting for the first attribute an ordinalposition among the other attributes where the ordinal positiondetermines when the first attribute is applied in relation to the otherattributes when the artwork object is rendered.

In another aspect, the invention provides a method of editing anelectronic document and includes identifying one or more objects to beincluded in an aggregation, one or more of the objects including anassociated object style and defining an aggregation style including oneor more operations to be applied to the aggregation to produce arenderable representation of the aggregation including identifying atime to apply the object style to an object in the aggregation.

In another aspect, the invention provides a method for editing anelectronic document that includes an artwork object includes associatinga named style with the artwork object, the named style including aneffect and rendering the artwork object with the named style.

In another aspect, the invention provides a method for defining a namedstyle for artwork in a computer graphics system where the methodincludes including an effect in the named style.

In another aspect, the invention provides a method for editing anelectronic document. The method includes applying a vector operation toa non-vector artwork object to produce a renderable representation ofthe non-vector artwork object without modifying the underlyingnon-vector artwork object.

In another aspect, the invention provides a method for editing digitalgraphics in response to user input and includes receiving a userselection applying a style change to an aggregation, the aggregationbeing an aggregation of two or more other artwork objects andautomatically determining whether to apply the style change to theaggregation as an aggregate or to the other artwork objects within theaggregation.

In another aspect, the invention provides a method for editing digitalgraphics in response to user input and includes receiving a userselection of a first artwork object having a first shape and a firstpaint style and a second artwork object having a second shape and asecond paint style, receiving a user request to generate a blend betweenthe first object and the second object, generating intermediate objectshaving shapes changing from the first shape to the second shape andhaving paint styles changing from the first paint style to the secondpaint style. The intermediate paint styles is constructed of two layers.The first layer has the first paint style and the second layer has thesecond paint style. The top one of the two layers has a transparency.The blend effect is created by varying the transparency of the top layerfrom opaque to transparent.

In another aspect, the invention provides a method for editing anelectronic document and includes applying a recipe of vector effects toan original path in an electronic document and displaying a firstmodified path, being the original path as modified by the recipe, ratherthan the original path, when rendering the electronic document.

In another aspect, the invention provides a method for editing anelectronic document and includes automatically reapplying multiplevector effects to a path when a user changes the path.

In another aspect, the invention provides a method for editing anelectronic document and includes automatically reapplying multiplevector effects to a path when a user changes any parameter of any of themultiple vector effects.

In another aspect, the invention provides a method for editing anelectronic document and includes automatically reapplying multiplevector effects to a path when a user changes an order of application ofthe multiple vector effects.

In another aspect, the invention provides a method for editing anelectronic document and includes attaching an effect to a firstaggregation. An aggregation is an aggregate of two or more otherobjects. The effect is an operation that can be applied to an objecthaving a visual appearance defined by source data to change the visualappearance without changing the source data.

In another aspect, the invention provides a method for processingdigital graphics and includes placing a content proxy as an operation inan ordered set of operations to be applied to an aggregation where anaggregation is an aggregate of two or more other objects and performingthe operations in order on the aggregation including applying thecontent proxy operation at a time indicated by the order.

In another aspect, the invention provides a system operable to havemultiple operations attached to a graphic object and includes a methodfor creating an operation. The method includes steps of including in adefinition of the operation a preferred position of the operation in anordered set of multiple operations.

In another aspect, the invention provides a method for inserting anoperation into a set of attached operations and includes receiving aninput identifying a first operation to be added to an ordered set ofmultiple operations and placing the first operation in a position in theorder according to a preferred position defined for the first operation.

These and other advantages will be readily apparent from the disclosureprovided herein and the attached Figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a computer system for creatingillustrations in accordance with one aspect of the present invention.

FIGS. 2A and 2B are a data structure for representing an objectincluding its properties and an applied style in accordance with oneaspect of the present invention.

FIG. 3 is a flow diagram for a process for producing a renderablerepresentation of an object.

FIG. 4 is a flow diagram-showing a process for generating an image thatincludes an aggregation where the process includes defining a style forthe aggregation, grouping elements in the aggregation and rendering arepresentation of the aggregation.

FIG. 5 is a flow diagram for a method of executing an aggregation style.

FIG. 6 is a diagram showing a user interface presented for an objectstyle.

FIG. 7 is a diagram showing alternate view of a user interface presentedfor an object style.

DETAILED DESCRIPTION

FIG. 1 shows a computing system 100 for generating graphics for displayor output on a conventional output device 102. The computing system 100includes one or more computer program applications 104 stored in amemory 106 which can be executed by a general purpose processor (CPU)108 to perform the methods described herein. In one implementation, anillustration application 104 a is provided that can be invoked by a userto generate an electronic document (illustration) that can be displayed,printed or otherwise processed by output device 102. Illustrationapplication 104 a includes a user interface that allows a user tomanipulate one or more tools 110 to generate, manipulate, display andoutput illustrations.

In one implementation, illustration application 104 a includes pluraltools 110 for creating original content or retrieving and manipulatingcontent previously produced. In the implementation shown, illustrationapplication 104 a includes plural object generation tools including atext object tool 112 a, a drawing tool 112 b and graphics tool 112 c.Each object generation tool can be manipulated to produce or retrieve anobject for inclusion in an illustration. In addition, illustrationapplication 104 a can include an aggregation tool 114 for use incombining elements into an aggregation for inclusion in an illustration.The operation of the aggregation tool 114 is described in greater detailbelow in reference to FIG. 4.

Object Properties

Each object has properties that can be manipulated through a userinterface. As shown in FIG. 2a, each object 202 has one or moreproperties. Examples of properties include URL 204, vector property 205,note property 206, image property 207 and style 210. URL 204 can definea uniform resource locator (URL) associated with the object. Vectorproperty 205 defines a path associated with the object. A textual notecan be attached to the object using note property 206. If the object isan image, then the image data (e.g. RGB image data and alpha data) canbe attached to the object as part of the image property 207 definition.Each property can have one or more attributes 205A (e.g., overprintattribute attached to the vector property 205).

A user can define and attach a style 210 to object 202. A style is arecipe that defines one or more operations to be performed on an object.When executed, a style receives as an input a representation of anobject (and its associated properties) and produces as an output arepresentation of the object, which can be rendered to produce anappearance on an output device. The representation is distinct from theobject. That is, producing and possibly further manipulating therepresentation does not change the properties of the underlying object.In the implementation being described, the style is “live”, meaning thatafter an object is edited, the style can be executed again to produce anew representation of the object.

A recipe 214 includes one or more elements 212. Elements can be selectedfrom various effects including pre-paint effects, paint effects andpost-paint effects. When the style is executed, the elements in recipe214 are processed in accordance with an ordering. In one implementation,the elements are processed in sequential order where each element in therecipe receives as an input the output produced by its predecessorelement in the order. More particularly, when the style is executed, thefirst element in the list receives as an input an object including itsvarious properties (e.g., object 202) and produces as an output arepresentation of the object. Because the style is live, a copy of theoriginal object is provided as an input when processing the firstelement in recipe 214 so as to maintain the integrity of the originalobject 202. When processing the second element in the recipe 214, thesecond element receives as an input the resultant representation of theobject produced when executing the first element of the recipe andproduces as an output a representation of the object.

Element 212 can be of various types. In one implementation, element 212can be an effect 212A, a fill attribute element 212B, and a strokeattribute element 212C. Each element defines a visual effect. A visualeffect is any operation that changes the visual appearance of an objectwithout changing its underlying source data and that can be described insuch a way that there is a recipe for applying it to any object of theappropriate kind, no matter what the shape or location of the object.This includes, but is not limited to, paint effects such as strokes andfills, vector effects such as zig-zag or scale operations, colorblending effects and image effects. Fill attribute element 212B is anelement that can be used to define a fill operation. Fill attribute 212Bcan itself include one or more effect attributes. Stroke attributeelement 212C can be used to define a stroke operation. Stroke attribute212C can itself include one or more effect attributes. The fill andstroke attribute elements have been separately identified here becausethey are subject to special treatment as described below.

Recipe 214 can include multiple fill attribute elements and strokeattribute elements. The recipe 214 can include a sequence 216 ofconsecutive fill-or-stroke attribute elements. (A “fill-or-stroke”attribute element is either a fill attribute element or a strokeattribute element.) When presented in a sequence 216 in recipe 214, thesequence 216 can be treated as a singular element for processingpurposes. More specifically, when executing a sequence 216 offill-or-stroke attribute elements, each element receives the same inputrepresentation of an object produced as a result of the execution of theimmediately preceding element in recipe 214) and produces a resultantobject. The resultant objects produced from executing each element inthe sequence are aggregated to produce a representation that is passedas input to the next element in the recipe or that is the output of therecipe. A user can assign any number of fill-or-stroke attributeselements to a style. The final appearance of the object depends not onlyon the fills specified, but also on the order in which the user placesthem in an associated sequence 216 (e.g., the order of fill or strokeattribute elements define a paint order). Those of ordinary skill in theart will recognize that the recipe can include plural elements arrangedand processed in series or parallel as described above in order to meeta particular implementation objective.

FIGS. 2a and 3 show, a process 300 for producing a renderablerepresentation of an object begins by receiving an object (step 302) andits style (step 303). A check is made to determine if any (other)elements of the style (recipe) are to be processed (step 304). If nomore elements in the recipe remain to be processed at 304, the processends (step 306), having produced a renderable representation of theobject. The renderable representation of the object can be rendered by arender engine and displayed as appropriate. Otherwise, a next element isidentified and processed (step 308).

Each element can include one or more attributes (effects). A check ismade to determine if any other attributes associated with the currentelement are to be processed (step 310). If no more attributes remain tobe processed the process continues with a next element in the recipe(step 304). Otherwise, a next attribute is identified (step 312) andprocessed (step 314).

Automatic Inference of Ordering

Elements can be placed in a recipe in any order. However, some effectscan be identified as having a natural place in an order, and thisidentification can be used to assist a user building a recipe. Forexample, nearly all raster effects and color or transparency-modifyingeffects should be applied to an object after the object has beenpainted, because the color of the object is necessary as an input. Othereffects, such as vector effects, vary as to when application willproduce the results desired. As will be described, the ordering ofelements and attributes in a recipe is inferred by the program from thetypes of effects proposed. More specifically, elements and attributescan include a default ordering. While a user has tremendous control overelement order, many users prefer not to think about this when adding avisual effect to a recipe. However, if the results produced are notsatisfactory, then the flexibility to change the ordering of the effectsis desirable.

Accordingly, in one implementation of the present invention, eachelement that can be included in a recipe can be automatically placedinto the recipe in accordance with a default characterization of theelement. In one implementation, each element is characterized as a painteffect, a pre-paint effect, or a post-paint effect. Each category canoptionally be further refined. For example, paint effects are classifiedas either fill effects and stroke effects, and an order is specified foreach of these types of paint property attributes. Post-paint effects areclassified as pre-rasterization effects, path-to-raster conversioneffects, post-rasterization effects and transparency effects. A defaultordering among these classes is defined. Pre-paint effects areclassified as order sensitive or order insensitive.

In operation, when the user adds an effect to an object, the effect isautomatically added at an appropriate location in the recipe accordingto the classification of the effect. As a user selects each effect, theeffect is classified, or position information is obtained from theeffect, and the effect is then placed into the recipe at an appropriatelocation.

Aggregation

In one implementation, illustration application 104A (FIG. 1) includesan aggregation tool 114. A user can use the aggregation tool 114 toproduce one or more aggregations. An aggregation includes multipleitems, such as simple objects, groups of objects, layers, or otheraggregations. An aggregation can be named and can have its own style (anaggregation style or recipe). An optional element of an aggregationrecipe is a placeholder element. A placeholder element identifies a timeat which the style for an underlying item of the aggregation should beexecuted.

FIG. 4 shows a process for creating an aggregation and applying anaggregation style to the aggregation to produce a representation of theaggregation. The process includes three parts: a creation phase 400, aspecification phase 402 and a render phase 404. Initially, a usercontrols the creation phase 400 and specifies one or more elements(e.g., effects) for the aggregation recipe (step 406). The specificationof elements can include the designation of one or more placeholders forspecifying when the style of an individual item of the aggregation is tobe applied during the style execution process. The operation anddesignation of placeholders are described in greater detail below. Afteror as the recipe of elements is created, an ordering for the applicationof the elements is defined (step 408). The ordering can be specified bythe user, or can be inferred by the system from the type of effect usinga default characterization scheme, as described above.

Some elements (e.g., effects) behave differently depending on whetherthey are applied to an aggregation as a whole or to its itemsindividually (e.g., rotation). In one implementation, a predefinedconvention is implemented to distinguish when effects should be appliedto the aggregation or the individual item. In one implementation, thefollowing convention is applied: if the effect can make a change intransparency (such as opacity or blending mode) or is identified as a“live” effect, then the effect will be applied to the aggregation. Alive effect defines an operation that receives as an input arepresentation of an object and produces as an output a newrepresentation of the object without modifying the original propertiesof the object. Examples of live effects include drop-shadow anddistortion. Those of ordinary skill in the art will recognize that liveeffects are similar to conventional filters in that a conventionalfilter defines an operation to be applied to an object producing as anoutput a renderable representation of the object. However, theapplication of a filter to an object destroys the original object.Whereas, the application of a live effect to an object allows a user tostill edit the underlying original object. In one implementation, a liveeffect can be implemented by keeping a copy of the original object alongwith the renderable representation produced when applying a live effectto the original object.

If the element does not affect transparency or define a live effect, theelement is applied to the individual items. In addition, if an elementchanges fill or stroke attributes where no aggregation fill or strokeshave been defined, then the element is applied to the individual items.The convention can be used whenever a user selects an aggregation andapplies a visual effect change or a named set of visual effect changes(a style).

After the ordering has been established, the aggregation style is namedand saved (step 410). In one implementation, each document includes alist of any named styles. The named styles are saved to disk any timethe document is itself saved. Each named style contains informationabout one or more visual effects that can be applied to art objects,including fill and stroke attributes and vector and stroke effects. Foreffects implemented by third party plug-in filters, the informationincluded within a named style includes the name of the filter, areference to the plug-in, and a parameter list for that filter.

The second phase 402 of the process includes applying an aggregationstyle to the aggregation. More specifically, one or more items areidentified as included in the aggregation (step 412). The user attachesthe style to the aggregation (step 414). When a user attaches a namedstyle to an object or aggregation, the object or aggregation stores areference to the named style. If the style is to be applied live, theobject or aggregation subscribes itself as a listener to that namedstyle. Those of ordinary skill in the art will recognize that a stylecan be applied in a non-live fashion (e.g. as a filter).

The final phase 404 includes executing the style and providing a visualoutput. More specifically, a check is made to determine whether theoutput needs updating (step 416). In one implementation, the outputneeds updating when a style is initially applied to an aggregation orchanges are made to the style and when any changes are made to any itemin an aggregation. Other conditions can prompt an update, for example,when one or more parameters associated with user preferences or theelectronic document change. If the output needs updating, then the styleis executed (step 417).

When a user redefines any properties (visual effects) of a named stylethrough the user interface, such as the parameters for a specific vectoror stroke effect, then the named style notifies any listeners that thestyle has changed. These listeners are the objects or the aggregationsthat contain a reference to the given named style. When an object oraggregation is notified that an associated named style has changed, theobject or aggregation passes itself through the named style once again,which in turn generates new art that can be rendered and displayed.

In one implementation, the process of rendering includes attaching toeach simple object in an aggregation a flag and a subordinate objectthat is the result of applying a visual effect to the source object. Theflag indicates whether the visual effect has been applied and the visualappearance art generated and saved since the last time the user editedthe object. When changes are made to the contents of an aggregation,appropriate flags can be set to indicate that items in the aggregationare invalid. At the time for display, if the appearance art is valid(flag not set) then the appearance art is displayed rather thanre-executing a style and generating new appearance art for a givenaggregation. If the art is not valid, then the aggregation style isreapplied to the aggregation, the appearance art generated and marked asvalid (set flag). The appearance art is also regenerated if any otheroperation is performed that would require it to be valid (e.g., othernon-rendering operations, such as asking the object what its visualbounding box is). In one implementation, memory can be conserved by notstoring the appearance art (the renderable representation produced as aresult of the execution of a style), because it can be easily generatedfrom the source art (e.g., an aggregation) and the specified visualeffect (e.g., the recipe).

Applying the Aggregation Style

As described above, the process of creating an aggregation style caninclude defining one or more placeholders. Each item in an aggregationcan include a style. In one implementation, the aggregation style caninclude an election for designating at what point in processing (if any)the individual object properties should be applied. The placeholder canbe undefined, such that the aggregation style overrides any individualitem style (property definition). Alternatively, multiple placeholderscan be specified and at each placeholder, the individual item style canbe applied.

As shown in FIG. 5, a method 500 for executing an aggregation style toproduce a renderable representation of the aggregation includes checkingif another element (i.e., visual effect) in the aggregation recipe isspecified (step 502). If none remain, the process ends (step 504).Otherwise, the next element (i.e., visual effect) is identified (step506). The current element is checked to determine if it is a placeholder(step 508). If so, then the underlying style(s) associated with theitem(s) in the aggregation is (are) applied (step 510). If the currentelement is not a placeholder, then the element (i.e., visual effect) isapplied to the aggregation (either individually or in the aggregatedepending on the visual effect) (step 512). Thereafter, the processcontinues at step 502.

In one implementation, each aggregation recipe includes a placeholderthat is located in a default place in the sequence of elements in theaggregate recipe, either at the beginning of the aggregate recipe or theend. In one implementation, a priority indicator can be specified foreach visual effect in an aggregation recipe or in a simple object stylerecipe. Depending on the priority level assigned to a visual effect,either the visual effect defined for the aggregation or the individualobject definition can take precedence when applying an effect to anitem.

In one implementation, the strict ordering for processing visual effectsdescribed above is slightly modified. That is, rather than applying thevisual effects in strict order, the effects to be applied to an object(simple object or aggregation) are classified (as described above) andapplied based on the classification level. In one implementation, allpre-paint effects are applied to an object (whether specified at theaggregate or individual level) prior to any paint effects or post-painteffects. In one implementation, the pre-paint effects for theaggregation are applied, followed by the pre-paint effects for theindividual items, the paint effects for the aggregation, then the painteffects for the individual items. Other orderings based on type ofeffect irrespective of hierarchical level can be made.

For example, in one implementation, when generating a representation fora fill or stroke attribute, all pre-paint operations defined for anaggregation and any individual items are applied before any painteffects. Thereafter, all paint effects for both the aggregation and theindividual items are in turn applied before any post-painting effects(for either the aggregation or the individual item) are applied.

User Interface

When aggregation definitions and individual object definitions have beencreated, the user interface can show the relationship of the variousdefinitions. In one implementation, when an object is selected, the userinterface displays a floating palette window as shown in FIGS. 6 and 7.In the window, the details of the object's style (property definition)are shown including the fill, stroke and transparency attributes of thepaint property. In one implementation, the properties and attributes areshown in a list-like fashion. Above these properties, another list isprovided that shows any parents (e.g., ancestors) of the selected objectand any properties (properties, attributes, or styles) inherited fromthem. The two lists can be separated in the window.

The ancestors are container objects that contain the selected object,directly or indirectly. Optionally, not all of the aggregate ancestorsare shown, only those that affect the appearance of the object selected.

Optionally, too, each individual effect can be selected in the windowand properties modified as desired. When properties are changed, theprogram can automatically delete the previously generated subordinateobjects (e.g., previously saved renderable representations of objectsproduced with the old recipe), apply the changed effects, save the newsubordinate object representation, and display the results.

In one implementation, when an object is selected for editing, theoriginal art is displayed for editing (using the original art for theobject). In one implementation, the original art is displayedhighlighted, and the user can edit the art using the full set of editingtools (text tool 112A, drawing tool 112B and graphics tool 12C ofFIG. 1) provided with the illustration application.

Effect Application

In one implementation, each time an effect is applied to the originalobject, a subordinate object that includes the result of the effect isproduced. In this way, plural effects can be applied to the originalobject without having to reproduce the original object after the firsteffect is applied. In addition, individual effects can be applied to theoriginal object and then the results produced by the individual effectscan be combined to produce a desired result. In the latterimplementation, plural resultant objects can be temporarily stored priorto producing a final resultant object representation. Again, if memoryspace is limited, only the resultant representation can be stored inlieu of the intermediate representations.

In one implementation, as each visual effect is identified, the effectreceives as an input the output produced from the previous visualeffect, if any, or the original object if the effect is the first visualeffect in a recipe, and any saved parameters. The system invokes theeffect on the received input, and produces as an output a representationof the object that is passed as an input to the next effect. If no moreeffects are specified, then the final result is saved as a subordinateobject and attached to the original art for the object.

Applications

The techniques described above can be applied in numerous contexts toprovide optimal presentation results. For example, stroke or filloperations can be defined for objects that do not traditionally includethese constructs. In this example, a stroke or fill can be defined for agroup of objects and for image and mesh objects. A path can beautomatically generated for the non-traditional objects and modified asappropriate. The generated path can be associated with thenon-traditional object and can be automatically regenerated if theunderlying image or mesh changes. In addition, the stroke or filldefined for the object (group) can be automatically changed if the userchanges the stroke or fill attributes of the non-traditional object(image object or mesh).

In some applications, a user can exploit a paint style that includesmultiple stroke or fill definitions. More specifically, when morphingbetween two objects having two different paint styles, a blended paintstyle for the intermediate objects can be produced as part of the morph.In one implementation, the intermediate object paint style includes twolayers. The top layer is the fill style of one end object, and thesecond layer is the fill style for the other end object (in the morph).Varying the transparency of the top fill layer between fully opaque atone end (making the bottom layer invisible) and fully transparent at theother end (making the top layer completely invisible) can create ablended effect. Layers and layer processing techniques are described inmore detail in copending U.S. patent application entitled “LayerEnhancements in Digital Illustration System” to Chris Quartetti, filedDec. 22, 1999, Ser. No. 09/470,255, the contents of which are expresslyincorporated herein by reference. A similar process can be used to blendtwo dissimilar stroke styles or any dissimilar paint styles.

What is claimed:
 1. A method for editing an electronic document thatincludes a plurality of artwork objects, comprising: associating a namedstyle with the plurality of artwork objects, each artwork object havingone or more properties that define an original appearance of arespective artwork object, the named style including an effect thatdefines an operation that changes an appearance of the plurality ofartwork objects; rendering the plurality of artwork objects with thenamed style without changing the properties of each artwork object thatdefine the original appearance of the respective artwork objects;receiving from a user a new definition of the effect, the new definitionof the effect redefining the named style; and automatically renderingthe plurality of artwork objects with the redefined named style at atime for rendering.
 2. The method of claim 1, wherein: automaticallyrendering the plurality of artwork objects with the redefined namedstyle includes rendering the plurality of artwork objects withoutreceiving user input selecting the plurality of artwork objects.
 3. Themethod of claim 1, wherein: if the plurality of artwork objects are notbeing displayed when the named style is redefined, rendering eachartwork object again at any time before a respective artwork object isdisplayed.
 4. The method of claim 1, wherein: if the plurality ofartwork objects are being displayed when the named style is redefined,rendering each artwork object again in response to the redefinition ofthe named style.
 5. A method for defining a named style for a pluralityof artwork objects in a computer graphics system, the method comprising:defining a named style, the named style including an effect, the effectdefining an operation to change an original appearance of the pluralityof artwork objects and produce a first representation of the pluralityof artwork objects that is distinct from the original appearance of theplurality of artwork objects without changing properties of each artworkobject that define the original appearance of a respective artworkobject; and receiving from a user a new definition of the effect, thenew definition of the effect redefining the named style, the newdefinition of the effect producing a second representation of theplurality of artwork objects that is distinct from both the originalappearance and the first representation of the plurality of artworkobjects, without receiving user input selecting the plurality of artworkobjects.
 6. The method of claims 1 or 2 or 5, wherein: the effect is avector effect.
 7. The method of claims 1 or 2 or 5, wherein: the effectis a stroke effect.
 8. The method of claims 1 or 2 or 5, wherein: theeffect is implemented in a plugin filter; and the named style includesthe name of the filter, a reference to the plugin, and a parameter listfor the filter.
 9. A computer program, tangibly stored on acomputer-readable medium, for editing an electronic document thatincludes a plurality of artwork objects, the computer program comprisinginstructions for causing a computer to: associate a named style with theplurality of artwork objects, each artwork object having one or moreproperties that define an original appearance of a respective artworkobject, the named style including an effect that defines an operationthat changes an appearance of the plurality of artwork objects; renderthe plurality of artwork objects with the named style without changingthe properties of each artwork object that define the originalappearance of the respective artwork objects; receive from a user a newdefinition of the effect, the new definition of the effect redefiningthe named style; and automatically render the plurality of artworkobjects with the redefined named style at a time for rendering.
 10. Agraphical processing system for editing an electronic document thatincludes a plurality of artwork objects, the system comprising: meansfor associating a named style with the plurality of artwork objects,each artwork object having one or more properties that define anoriginal appearance of a respective artwork object, the named styleincluding an effect that defines an operation that changes an appearanceof the plurality of artwork objects; means for rendering the pluralityof artwork objects with the named style without changing the propertiesof each artwork object that define the original appearance of therespective artwork objects; means for receiving from a user a newdefinition of the effect, the new definition of the effect redefiningthe named style; and means for automatically rendering the plurality ofartwork objects with the redefined named style at a time for rendering.11. The method of claim 1, wherein rendering the plurality of artworkobjects with the named style includes: creating a copy of each artworkobject, including the properties associated with a respective artworkobject; and rendering the copy of each artwork object with the namedstyle to produce a new appearance of the respective artworks object thatis distinct from the original appearance of the respective artworkobjects.
 12. The computer program product of claim 9, wherein theinstructions for causing a computer to render the plurality of artworkobjects with the named style includes instructions to cause the computerto: create a copy of each artwork object, including the propertiesassociated with a respective artwork object; and render the copy of eachartwork object with the named style to produce a new appearance of therespective artwork objects that is distinct from the original appearanceof the respective artwork objects.
 13. The graphical processing systemof claim 10, wherein the means for rendering the plurality of artworkobjects with the named style includes: means for creating a copy of eachartwork object, including the properties associated with a respectiveartwork object; and means for rendering the copy of each artwork objectwith the named style to produce a new appearance of the respectiveartwork objects that is distinct from the original appearance of therespective artwork objects.
 14. A computer program, tangibly stored on acomputer-readable medium, for defining a named style for a plurality ofartwork objects in a computer graphics system, the computer programcomprising instructions for causing a computer to: define a named style,the named style including an effect, the effect defining a operation tochange an original appearance of the plurality of artwork objects andproduce a first representation of the plurality of artwork objects thatis distinct from the original appearance of the plurality of artworkobjects without changing properties of eack artwork object that definethe original appearance of a respective artwork object; and receive froma user a new definition of the effect, the new definition of the effectredefining the named style, the new definition of the effect producing asecond representation of the plurality of artwork objects that isdistinct from both the original appearance and the first representationof the plurality of artwork objects, without receiving user inputselecting the plurality of artwork objects.